\section{Related Work and Discussion}
\label{RW}

The work on MBT for software architeture is in early stages. One of the recent work reported is of Reza and Lande \cite{Reza2010}, in which they use Hierarchical PetriNets(HPrTNs) as an input model for testing. They discuss the use of coverage criteria for model based testing of software architectures. Dong \emph{et al.}  \cite{Dong2009} propose a model based testing methodology for AADL architecture. In ththeir they generate Markov Chain and Error mdoel from AADL specifications. They discuss the use of Markov chains for test case generation. Our work also focuses on MBT for software architecture but we are relying on the use of UML for test case generation. 

Bertolino \emph{et al.} \cite {Bertolino1996} in their work on integration testing of complex system, use architectural specifications and derive reduced graphs for generating test cases. The problem with reduced graphs is that it is not possible to determine the order of events in which they are executed. We have solved this problem by using the Sequence diagram that supports modeling with respect to the order of the events. Muccini \emph{et al.} \cite {Muccini2004}  propose an approach for code testing. They use Labeled Transition System (LTS), applying an observation function on LTS and generate an abstract LTS. They further discuss traceability and test execution in terms of code testing. The automation of the approach is not discussed but they apply their work on software architecture in C2 style \cite {Muccini2004a}. 

Jin and Offut\cite {Offutt2001f} define architecture relations, architectural paths and architecture based coverage criteria. The coverage criteria discussed are quite relevant to our work. for control flow and data flow based testing from software architecture.They apply their work on WRIGHT specification and present a prototype tool and detailed work in \cite {PhD:Jin2000}.

Some earlier work on testing from software architecture discuss some basic issues in testing from software architecture.Bertolino \emph{et al.}\cite {Bertolino1996} discuss the use of software architecture for testing using the CHAM specifications. This work is based on the discussion of the testing strategy and evaluation of tests. They has not applied their work on any specific case study nor any experiment is provided. In the work of Richardson and Wolf \cite {Richardson1996},integration based test criteria for CHAM software architecture specifications is presented. The presented criteria's depend on the structures in architecture, the communication between architecture and required test data for testing.This is an early work and lack the detailed testing approach.

Simon \emph{et al.} \cite {Pickin2004} use UML Sequence diagram as a test model for component based systems. Their work is based on UML 1.4. The problems of parallel communication, loops, choice and representation of guard conditions lead them to propose additional constructs to be used with sequence diagram. These problems are solved in UML 2.0, we are proposing only a light weight extension to the original SD. Moreover the test modeling for software architecture is different from component based systems. In software architecture we do not have implementation detail available while a component based system may have the underlying implementation. The interactions modeled in software architecture are always at higher level. Moreover in a CBS , the components come from different sources and it is highly possible that any of the component is not available at testing time. In such situations a stub is generated to test the system. On the other a component based system also has an architecture. The architectural component is a component with interface,a  system, a subsystem, or a component with no detail at all.

%\subsection{Discussion}
%
%In this paper we have proposed a methodology for a test model. We also used this test model to generate ATCs. This work is part of our broader work on testing of evolving software architectures. An evolving architecture is one that goes through some modifications either static or dynamic. The static modifications are in terms of components, connectors, or constraints on software architecture. The dynamic modifications includes a change in behavior configuration of an architecture. These modifications not only impact quality of software architecture but also affect other architectural artefacts such as design and testing.It is expected that an evolving architecture satisifies the expected properties. Testing is an important tool to determine the satisfaction of evolving architecture with respect to the expected properties.
%
%In our broader work, we intend to provide a guideline on evolution of test models with respect to the evolving architectures.  Lets consider an architecture model AM and a test model TM, now AM goes through some evolution. We consider specification of an evolution  AE of the architectural model AM that would result in an architecture model AM', the problem is to determine the impact of AE on TM. We will be using the test model generated in this approach to realize the impact of evolving architectures on test model. 
%
%We are also intend to automate this approach for ATC generation from software architecture. The first step of the approach i.e. design of a test model from software architecture is a manual activity. We have discussed in detail the modeling the sequence diagram based test model. Once a test model is formed the next activity of ATC generation is automatable.
%
